For example, NAND type flash memory (referred to as NAND flash memory), which is adopted in flash memory devices, such as SSDs, stores both data to be stored in NAND flash memory (hereinafter, store target data) and an error correcting code (e.g., ECC (Error Correcting Code)) for that store target data in order to ensure data reliability. In flash memory devices, when reading the store target data, if the number of bit errors in the store target data is within the number of bit errors that can be corrected by using an ECC (hereinafter, the number of correctable bits), then data correction is performed with the ECC and the data to be stored after the correction is read. Generally, as the data volume of an ECC stored with the store target data increases, the number of correctable bits becomes larger.
As structural miniaturization advances, large capacity NAND flash memory becomes more difficult to produce, which tends to lead to degradation of its quality, such as a lower upper limit on the number of rewrite processes and/or a shortened data retention period, and so on. For example, in 2×nm generation of miniature, but large capacity MLC NAND flash memory, even if an ECC, which is sized as required by the flash memory vendor (company that sells flash memory), is stored with the store target data, only around several thousands of rewrite cycles (or erase cycles) are guaranteed in the first place. Further, as mentioned above, since there is a tendency of decrease in quality of flash memory, the MLC NAND flash memory lacks reliability, while having a large capacity. Accordingly, it is difficult to adopt NAND flash memory as enterprise use without any measures being taken. Thus, SSD vendors (companies that manufacture SSDs with flash memory available from flash memory vendors and sell the manufactured SSD) have been taking their own measures for NAND flash memory, such as lifetime extension measures.
The next generation flash memory that will replace NAND flash memory includes SCM (Storage Class Memory) flash memory (see Non-Patent Document 1). As compared with NAND flash memory, SCM flash memory has higher performance that achieves faster response speed at the time of read and write, as well as higher durability that provides a higher upper limit on the number of rewrite processes. In addition, depending on the specifications, SCM flash memory has a characteristic that enables data read and write on a per-byte basis as well as data erase on a per-byte basis.